"""
母亲节（Mother's Day），是一个感谢母亲的节日。
起源于美国，是每年5月的第二个星期日。
母亲们在这一天通常会收到礼物，康乃馨被视为献给母亲的花，
而中国的母亲花是萱草花，又叫忘忧草
父亲节（Father's Day），是一个感谢父亲的节日。
起源于美国，最广泛的日期在每年6月的第三个星期日，
世界上有52个国家和地区是在这一天过父亲节。
具体需求：
【1】输入一个年份，打印出该年和未来四年的父亲节和母亲节的日期，
并分别打印出是该年的第多少天
"""

import datetime


def get_years():
    while True:
        year = input("输入年份：")
        if year.isdigit() != True:
            print("输入错误，重新输入一个年份")
            continue
        else:
            year_number = int(year)

            year_list = []

            year_list.append(year_number)
            year_list.append(year_number + 1)
            year_list.append(year_number + 2)
            year_list.append(year_number + 3)
            year_list.append(year_number + 4)

            return year_list


def get_mother_day(year: int):
    # 判五月一号
    may_first = datetime.datetime(year, 5, 1).strftime("%w")
    #判断5月1日：周日：+7
    #判断5月1日：周一：+13
    #判断5月1日：周二：+12
    interal_days = {0: 8, 1: 14, 2: 13, 3: 12, 4: 11, 5: 10, 6: 9}
    mother_day = interal_days[int(may_first)]
    print("{}年母亲节是5月{}日".format(year, mother_day))
    print("这一天是{}年的第{}天".format(year, days_difference(year, 5, mother_day)))


def get_father_day(year: int):
    # 判六月一号
    june_first = datetime.datetime(year, 6, 1).strftime("%w")
    #判断6月1日：周日：+14
    #判断6月1日：周一：+20
    #判断6月1日：周二：+19
    interal_days = {0: 15, 1: 21, 2: 20, 3: 19, 4: 18, 5: 17, 6: 16}
    father_day = interal_days[int(june_first)]
    print("{}年父亲节是6月{}日".format(year, father_day))
    print("这一天是{}年的第{}天".format(year, days_difference(year, 6, father_day)))


def days_difference(year, month, day):
    day_1 = datetime.datetime(year, 1, 1)
    day_2 = datetime.datetime(year, month, day)
    return (day_2 - day_1).days


if __name__ == "__main__":
    list_year = get_years()
    # print(list_year)
    for each in list_year:
        get_mother_day(each)
        get_father_day(each)
